!--------------------------------
! Programa dedicado a calcular
! a evolucao da velocidade de um ciclista
! considerando a resistencia do ar,
!
! Programa compilado e testado com:
! $ gfortran -o exerB exerB.f90
! $ ./exerB
! 
! Forma de utilizacao auto-explicativa
! atravez de comentarios.
!
! _o_o_ oOo _o_o_ 28/09/2010


PROGRAM exerA
  IMPLICIT NONE
  INTEGER :: i
  REAL (KIND=8) :: vi, v0, dt, T, A ,P=400., m=70., ro=1.2, C=.5
  REAL (KIND=8) ::  va,vt, instt

  write(*,*) "Qual a velocidade inicial do ciclista?"
  read(*,*) vi
  write(*,*) "Qual o intervalo de tempo para o calculo iterativo?"
  read(*,*) dt
  write(*,*) "por quanto tempo?"
  read(*,*) T
  write(*,*) "Qual a area?"
  read(*,*) A

  OPEN(11,file='vel1_out_ar.dat')
  write(11,*) 0, vi
  i=1
  vt=vi
  va=vi
  write(*,*) "INICIANDO OS CALCULOS"
  DO WHILE (i<int(T/dt))
    vi=vi+ ((P/vi) - C*ro*A*(vi**2))*(dt/m)
    vt=vt+vi
    IF (abs(va-vi)>0.0001) THEN
      instt=i*dt
    END IF
    va=vi
    write(11,*) i*dt, vi
    i=i+1
  END DO

  write(*,*) "*****************"
  write(*,*) "Questao 1"
  write(*,*) "*****************"
  write(*,*) "P. Porque o ciclista corredor normalmente se curva em corridas?"
  write(*,*) "R. Para diminuir a area com que o ar empacta seu corpo. Desta forma ele diminui o atrito."
  write(*,*) "P.porque os ciclistas correm em grupo?"
  write(*,*) "R. Porque movimentam o ar em conjunto, diminuindo a contribuicao individual."
  write(*,*) "P. Porque eh mais vantajoso um corredor colar-se atras de outro?"
  write(*,*) "R. Porque o ar que o de tras pega jah estah em movimento."

  write(*,*) "*****************"
  write(*,*) "Questao 2"
  write(*,*) "*****************"
  write(*,*) "Qual a velocidade final do ciclista apos o tempo t?"
  write(*,*) "v_final = ", vi

  write(*,*) "*****************"
  write(*,*) "Questao 3"
  write(*,*) "*****************"
  write(*,*) "Em que instante eh alcancada a velocidade terminal?"
  write(*,*) "t = ", instt

  write(*,*) "*****************"
  write(*,*) "Questao 4"
  write(*,*) "*****************"
  write(*,*) "Qual o espaco total percorrido pelo ciclista apos o tempo T?"
  write(*,*) "Ds = ", vt*dt

  write(*,*) "*****************"
  write(*,*) "Questao 5"
  write(*,*) "*****************"
  write(*,*) "Qual a velocidade media do ciclista?"
  write(*,*) "v_m = ", vt/(T/dt)

end PROGRAM